#include <atomic>
#include <iostream>
#include <thread>

/**
 * @brief 使用最严格的 seq_cst 内存序，确保所有线程看到统一顺序。
 */
int main() {
  std::atomic<int> value{0};

  std::thread writer([&]() {
    value.store(42, std::memory_order_seq_cst);  ///< 发布数据：保证写入顺序一致。
  });

  std::thread reader([&]() {
    int read_value = value.load(std::memory_order_seq_cst);  ///< 获取数据：看到最新值。
    std::cout << "seq_cst read: " << read_value << '\n';
  });

  writer.join();
  reader.join();
  return 0;
}